package com.ksyun.ks3.demo;

import com.ksyun.ks3.dto.HeadObjectResult;
import com.ksyun.ks3.exception.serviceside.NoSuchKeyException;
import com.ksyun.ks3.service.request.HeadObjectRequest;

/**
 * @author lijunwei[lijunwei@kingsoft.com]  
 * 
 * @date 2014年12月1日 下午12:53:55
 * 
 * @description 可以用来判断一个object是否存在
 **/
public class HeadObjectDemo extends AbstractDemo {
	public HeadObjectResult headObject() {
		HeadObjectRequest request = new HeadObjectRequest("<bucket名称>",
				"<object名称>");
		/**
		 * <p>
		 * 如果抛出{@link NoSuchKeyException} 表示这个object不存在
		 * </p>
		 * <p>
		 * 如果抛出{@link AccessDinedException} 表示当前用户没有权限访问
		 * </p>
		 */
		HeadObjectResult result = client.headObject(request);
		// head请求可以用于获取object的元数据
		result.getObjectMetadata();
		return result;
	}
	/**
	 * 判断一个object是否存在
	 */
	public boolean objectExists() {
		try {
			HeadObjectRequest request = new HeadObjectRequest("<bucket名称>",
					"<object名称>");
			client.headObject(request);
			return true;
		} catch (NoSuchKeyException e) {
			return false;
		}
	}
}
